package cn.iocoder.yudao.module.system.controller.admin.gugu.gugu;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;

/**
 * 历年高考高校录取分数线查询请求VO
 */
@Schema(description = "历年高考高校录取分数线查询请求")
@Data
public class CollegeScoreQueryReqVO {

    @Schema(description = "查询条件类型，支持录取省份以及高校名称查询，参数值分别为：PROVINCENAME 或 COLLEGENAME", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "查询条件类型不能为空")
    private String searchtype;

    @Schema(description = "录取省份或高校名称，高校名称支持模糊查询", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "关键字不能为空")
    private String keyword;

    @Schema(description = "分页参数，第几页", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "页码不能为空")
    private Integer pageindex = 1;

    @Schema(description = "分页参数，每页总条数，取值范围在 1 ~ 20 之间（含）", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    @NotNull(message = "每页大小不能为空")
    private Integer pagesize = 10;

    @Schema(description = "查询的录取年份，如 2020、2021、2022、2023、2024。参数默认值为 0：即获取所有年份的录取数据", example = "2024")
    private Integer year;

    @Schema(description = "录取最低分查询条件，筛选出最低分小于等于查询条件的值", example = "500")
    private Integer min;

    @Schema(description = "文科理科类型", example = "理科")
    private String type;

    @Schema(description = "控制 keyword 参数在查询高校名称时是否进行模糊查询，true 为精确匹配，默认值为 false 进行模糊查询", example = "false")
    private Boolean keywordstrict = false;

    @Schema(description = "用于 searchtype=COLLEGENAME 时，附加一个招生省份的条件", example = "江苏")
    private String enrollprovince;

    @Schema(description = "录取批次参数，可使用英文逗号分隔传递多个值", example = "本科一批")
    private String batchname;

    @Schema(description = "学院所属省份筛选", example = "江苏")
    private String collegeprovincename;

    @Schema(description = "招生类型筛选", example = "普通类")
    private String enrollmenttype;

    @Schema(description = "咕咕数据平台高校唯一 ID", example = "uuid123")
    private String schooluuid;

    @Schema(description = "排序控制，格式为字段+排序类型（asc、desc）", example = "HighestScore|desc")
    private String sort;

    @Schema(description = "录取最低分区间查询条件，使用逗号分隔，左右都为闭区间，格式为：500,700", example = "500,700")
    private String minrange;
}
